package bd;

import java.sql.Connection;
import java.sql.DriverManager;

import configuracoes.Configuracoes;
import excecoes.FalhaPersistenciaException;

public class Transacao {

	private boolean confirmada;
	private boolean finalizada;
	private boolean cancelada;

	private boolean comErro;

	private Connection conexao;

	public Transacao() {		
	}

	public boolean isCancelada() {
		return cancelada;
	}

	public void setCancelada(boolean cancelada) {
		this.cancelada = cancelada;
	}

	public boolean isConfirmada() {
		return confirmada;
	}

	public void setConfirmada(boolean confirmada) {
		this.confirmada = confirmada;
	}

	public boolean isFinalizada() {
		return finalizada;
	}

	public void setFinalizada(boolean finalizada) {
		this.finalizada = finalizada;
	}



	public boolean isComErro() {
		return comErro;
	}

	public void setComErro(boolean comErro) {
		this.comErro = comErro;
	}

	public Connection getConexao() throws FalhaPersistenciaException {
		try {			
			if(this.conexao == null || this.conexao.isClosed()){				
				Class.forName("com.mysql.jdbc.Driver");
				String url = "jdbc:mysql://" + Configuracoes.getInstacia().getPropriedadeBD("host") + "/" + 
				Configuracoes.getInstacia().getPropriedadeBD("basedados") + 
				"?user=" + Configuracoes.getInstacia().getPropriedadeBD("usuario") + 
				"&password=" + Configuracoes.getInstacia().getPropriedadeBD("senha");
				conexao = DriverManager.getConnection(url);
				conexao.setAutoCommit(false);
			}			
		} catch (Exception ex) {
			throw new FalhaPersistenciaException("mysql: Erro conectando ao BD", ex);
		}

		return conexao;
	}	


}
